package com.cershy.chatroomserver.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cershy.chatroomserver.entity.UserList;
import com.cershy.chatroomserver.dto.CreateGroupRequest;
import java.util.List;
import java.util.Map;

public interface UserListService extends IService<UserList> {

    //退群
    boolean removeUserFromGroup(String userId, String groupId);

    // 获取用户加入的所有群聊
    List<UserList> getGroupsByUserId(String userId);

    List<String> getGroupIdsByUserId(String userId);

    String getGroupOwnerId(String groupId);

    /**
     * 根据群组ID获取所有成员信息
     * @param groupId 群组ID
     * @return 成员信息列表 (userId, name, avatar, role)
     */
    List<Map<String, Object>> getGroupUsers(String groupId);


    // 判断用户是否属于某个群聊
    boolean isUserInGroup(String userId, String groupId);

    // 添加用户到群聊
    boolean addUserToGroup(String userId, String groupId, String role);


    boolean createGroup(CreateGroupRequest request);

    /**
     * 解散群聊（移除所有成员并删除群）
     *
     * @param groupId 群聊 ID
     * @param ownerId 群主 ID
     * @return 是否成功
     */
    boolean disbandGroup(String groupId, String ownerId);
}
